<?php

/**
 * Create by SN
 * Create on 2020/3/15 7:16
 * Des : 单例模式
 */
class Person
{

    //1.使用一个静态成员变量保存类的实例
    private static $instance = null;

    //2.构造函数私有
    private function __construct()
    {

    }

    //私有的__clone()阻止在类的外部clone对象
    private function __clone() {

    }


    //提供一个访问实例的静态方法
    public static function getInstance(){
        if(!self::$instance){
            echo "创建Person实例\n";
            self::$instance = new self();
        }
        return self::$instance;
    }

    public function say(){

        echo "person say ....\n";
    }

}

//测试, 只会创建一次
$person1 = Person::getInstance();
$person2 = Person::getInstance();
$person1->say();
$person1->say();


